# 装饰器 以一个函数作为参数 ，并返回一个函数
# 作业二：
# 请设计一个装饰器，它可以作用于任何函数上，打印函数执行时间：
# import time
# def metric(fn):
# start_time = time.time()
# end_time = time.time()
# print('耗时：{:.4f}s'.format(end_time - start_time))
# return fn

import time
#定义一个装饰器，fn是以一个函数作为参数，并返回一个函数
def metric(fn):
    #匿名函数
    #对传入的参数没有限制用*args **kw
    def count_time(*args,**kw):
        start_time = time.time()
        fn()
        end_time = time.time()
        print('耗时：{:.4f}s'.format(end_time - start_time))
        return metric
    return count_time

#定义一个简单的函数用于测试
@metric
def nums():
    for i in range(1000):
        q = 1 + i
        print(q)
    return

nums()